/**
 * FileName: CharuSort
 * Author:   powersi
 * Date:     2021/3/13 8:03
 * Description:
 */
package com.zm.demo.core.sort;

import java.util.Arrays;

/**
 * Description:
 * 主要思想，用未排序的首个元素和已排序的元素进行对比，满足条件时，移动相关元素，并插入元素。
 * Author:      powersi
 * Date:        2021/3/13 8:03
 */
public class CharuSort {

    public static void main(String[] args) {
        sort();
//        int[]a = {0, 1,2,4,5,7,8,4,3,6};
//
//        //默认第一个已排序，因此从第二个元素开始排序
//        for (int i = 1; i < a.length; i++) {
//            int tmp = a[i];//记录下当前元素值
//
//            int j = i-1;
//            //遍历已排序的数据，如果当前值需要插入到某个位置，则这个位置之后已排序的数据都需要后移一位
//            for (; j>=0 ; j--) {
//                if (a[j] < tmp){
//                    a[j+1] = a[j]; //移动元素
//                }else {
//                    break;
//                }
//            }
//
//            a[j+1] = tmp;//j是插入元素前一个位置，因此要插入元素位置即为 j+1
//
//            System.out.println(String.format("第%d轮  ",i) +  Arrays.toString(a));
//        }
    }


    public static final void sort(){
        int[]a = {0, 1,2,4,5,7,8,4,3,6};

        for (int i = 1; i < a.length; i++) {
            int tmp = a[i];
            int j = i-1;
            for (; j >= 0 ; j--) {
                if (a[j] > tmp){
                    a[j+1] = a[j];
                }else {
                    break;
                }
            }
            a[j+1] = tmp;
            System.out.println(Arrays.toString(a));
        }



    }
}
